﻿#pragma once

#include "Ability/EditorAbilityViewModel.h"
#include "EditorAbilityGroupViewModel.m.h"

class RTexture2D;
class REditorAbilityGroupModel;
class REditorAbilityViewModel;
class REditorSplitableLayoutViewModel;

RCLASS(ExtraHeader=[ "Widgets/Splitable/EditorSplitableLayoutViewModel.h"])
class REditorAbilityGroupViewModel : public REditorAbilityViewModel
{
    ROBJECT

public:
    virtual void BindModel(TSharedObjectPtr<REditorAbilityGroupModel> InModel);
    

    float GetAbilityTitleHeight();

    const float ExpandIconSize = 16.0f;
    TSharedObjectPtr<RTexture2D> GetExpandIcon(bool bExpanded) const;
    TSharedObjectPtr<RTexture2D> GetMoreIcon() const {return MoreIcon;}
protected:
    TWeakObjectPtr<REditorAbilityGroupModel> Model;

    TSharedObjectPtr<RTexture2D> ExpandedIcon;
    TSharedObjectPtr<RTexture2D> CollapsedIcon;

    TSharedObjectPtr<RTexture2D> MoreIcon;

public:
    TSharedObjectPtr<REditorSplitableLayoutViewModel> GetLayout();
protected:
    RFIELD()
    TSharedObjectPtr<REditorSplitableLayoutViewModel> Layout;

};